package org.sam.swing;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

/**
 * 演示代码
 *
 */
public class App {
	public static void main(String[] args) {

		try {
			// 获取当前操作系统的主题
			UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
		} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
				| UnsupportedLookAndFeelException e) {
			e.printStackTrace();
		}

		System.setProperty("user.language", "zh");
		System.setProperty("user.region", "CN");

//		JFrameDefaultTableDemo frm1 = new JFrameDefaultTableDemo();
//		frm1.setLocationRelativeTo(null);
//		frm1.setSize(1024, 768);
//		frm1.setVisible(true);
//
//		JFrameDemo frm2 = new JFrameDemo();
//		 frm2.setSize(1024, 768);
//		 frm2.setLocationRelativeTo(null); // 在屏幕上居中
//		 frm2.setVisible(true);
//
//		JPanelMatrix panel = new JPanelMatrix();
//		JFrame frame1 = new JFrame("交叉表格测试");
//		frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//		frame1.setLayout(new BorderLayout());
//		frame1.add(panel, BorderLayout.CENTER);
//		frame1.setSize(640, 480);
//		frame1.setVisible(true);

		JPanelTreeTableDemo panel1 = new JPanelTreeTableDemo();
		JFrame frame = new JFrame("树形表格测试");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLayout(new BorderLayout());
		frame.add(panel1, BorderLayout.CENTER);
		frame.setSize(640, 480);
		frame.setVisible(true);
//
//		 JInputTestFrame frm = new JInputTestFrame();
//		 frm.setSize(1024, 768);
//		 frm.setVisible(true);
		
//		JFrameArrayTable frame = new JFrameArrayTable();
//		frame.setTitle("數組表格測試");
//		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//		frame.setSize(640, 480);
//		frame.setVisible(true);
	}

//	private static Map<Integer,Long> cached;
//	
//	public static long f4(int n) {
//	    if (n <= 0) {
//	        throw new RuntimeException("输入参数小于1");
//	    }
//	    if (n == 1 || n == 2) {
//	        return 1;
//	    }
//	    
//	    if (cached == null){
//	    	cached = new HashMap<Integer, Long>(n << 1);
//	    	cached.put(0, 0L);
//	 	    cached.put(1, 1L);
//	 	    cached.put(2, 1L);
//	    }
//	    
//	    if (cached.containsKey(n))
//	    	return cached.get(n);
//	    
//	    for (int i = 3; i <= n; ++i) {
//	    	if (!cached.containsKey(n)){
//	    		cached.put(i, cached.get(i - 2) + cached.get(i -1));
//	    	}
//	    }
//	    return cached.get(n);
//	}
//	
//	
//	public static long f1(int n) {
//	    if (n <= 0) {
//	        throw new RuntimeException("输入参数小于1");
//	    }
//	    if (n == 1 || n == 2) {
//	        return 1;
//	    }
//	    return f1(n - 2) + f1(n - 1);
//	}
//	
//	public static void main(String[] args){
//		int max = 55;
//		
//		long currentTimeMillis = System.currentTimeMillis();
//		System.out.println(f1(max));
//		System.out.println("递归:" + (System.currentTimeMillis() - currentTimeMillis));
//		
//		//100
//		 currentTimeMillis = System.currentTimeMillis();
//		System.out.println(f4(max));
//		System.out.println("第一次执行:" + (System.currentTimeMillis() - currentTimeMillis));
//		currentTimeMillis = System.currentTimeMillis();
//		System.out.println(f4(max));
//		System.out.println("第二次执行:" + (System.currentTimeMillis() - currentTimeMillis));
//	}

}
